package com.qf.springmvc.controller;

import com.qf.springmvc.entity.User;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * @authorDXT
 * @date2022/4/29 10:27
 */
@Controller // 这个注解标识当前类作为一个控制器
@RequestMapping("/hello")
public class HelloController {
    // @RequestMapping 请求地址的映射关系，如果请求的地址是/hello，就交给这个方法处理请求
    @RequestMapping("/test1")
    public String test1(@RequestParam(value = "name",required = false) String username, Integer age, @DateTimeFormat(pattern = "yyyy-MM-dd") Date birthday){
        System.out.println("Hello SpringMVC");
        // 返回的字串，就是转发到的路径 视图的地址
        System.out.println("name=" + username + ",age=" + age+",birthday="+birthday);
        return "index";
    }

    // 如果类上和方法上都有 @RequestMapping,那么映射的请求路径就是类上的地址+方法的地址 /hello/test2
    @RequestMapping("/test2")
    public String test2(User user){
        System.out.println("Hello SpringMVC Test2");
        System.out.println(user);
        return "welcome";
    }

    @RequestMapping("/array")
    public String array(String [] name){
        System.out.println(Arrays.toString(name));
        return "welcome";
    }

    // 如果传递的参数类型是list 需要增加@RequestParam注解 ids=1,2,3
    @RequestMapping("/list")
    public String list(@RequestParam List<String> ids){
        System.out.println(ids);
        return "welcome";
    }

}
